package com.orientation.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.orientation.dto.ReserveGoodsDto;
import com.orientation.entity.Receive;
import com.orientation.vo.ReceiveGoodsStudentVo;
import com.orientation.vo.StudentClassInfoVo;
import com.orientation.vo.StudentProgressVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 物质领取状态表 服务类
 * </p>
 *
 * @author xuandian
 * @since 2022-01-09
 */
public interface ReceiveService extends IService<Receive> {
    /**
     * 批量申请物资领取
     * @param reserveGoodsDto
     */
    void insertReceive(ReserveGoodsDto reserveGoodsDto);
    /**
     * 物资领取申领/确认列表
     * @param pageNum
     * @param pageSize
     * @param receiveStatus
     * @param majorId
     * @param className
     * @param studentName
     * @return
     */
    IPage<ReceiveGoodsStudentVo> queryReceiveGoodsStudentVo(Integer pageNum, Integer pageSize, Integer receiveStatus,  String collegeId,String majorId, String className, String studentName, String studentId);

    /**
     *
     * @param files
     * @param sid
     * @param urls
     */
    void updateOrinsertReceive(MultipartFile[] files, String sid,  List<String> urls);

    /**
     * 领取确认登记表
     * @param receiveStatus
     * @param majorId
     * @param className
     * @param studentName
     * @param studentId
     * @param response
     */
    void statisticsExport( Integer receiveStatus, String majorId, String className, String studentName, String studentId, HttpServletResponse response);

    /**
     *     h5 * 申请物资领取
     * @param sid
     * @param studentId
     */
    void insertReceiveOne(String goodsId, String studentId);

    /**
     * 物资申领状态统计
     * @return
     */
    StudentProgressVo progressReceive(String collegeId);

    /**
     * 小程序端申请物资和领取
     * @param files
     * @param sid
     * @param goodsId
     * @param studentId
     */
     void updateOrinsertReceiveH(MultipartFile[] files, String sid, String goodsId, String studentId);

    /**
     * 物资未领取
     * @param pageNum
     * @param pageSize
     * @param collegeId
     * @param majorId
     * @param className
     * @param studentName
     * @param studentId
     * @return
     */

    IPage<StudentClassInfoVo> queryStudentGoods(Integer pageNum, Integer pageSize, String collegeId, String majorId, String className, String studentName, String studentId);

}
